-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BP DMRG - Alpha Version #191
Conversation
A key question about the stability is does the core eigensolver solve a regular or generalized eigenvalue problem? |
The core eigensolver solves a regular eigenvalue problem here by switching to the |
Thanks. So then the eigensolver part sounds fine. I wonder then if it's the gauging procedure. While mathematically correct, the inverse square roots may cause precision issues. I ran into this in the past when implementing MPS in the "Vidal gauge" for parallel DMRG and it was quite difficult to deal with. I wonder if it's possible to work in a different gauge that avoids any inverses, or else implements the inverses by doing linear solves. |
This PR adds some files for doing one-site DMRG with belief propagation.
First, support is added in
src/beliefpropagationdmrg/tensornetworkoperators.jl
for converting anOpSum
to a vector ofITensorNetworks
which are each trees and span the same set of vertices but have different edges. The sum of thoseITensorNetworks
is equal to the Hamiltonian represented byOpSum
.Then code is added for doing
bp
style dmg on thoseITensorNetworks
in the same vein asalternating update
(in the style of using an inserter, extracter and updater)@mtfishman This is very much a draft for you to look at - it isn't put into the alternating update framework yet because the
algorithm is too unstable so I think we still need to figure out some details. In the case the graph
g
is a tree the code works fine. When it isn't then the code descends in energy well but then tends to "oscillate" near the true ground state energy but is not able to converge to a solution. Moreover, increasing the bond dimension abovechi = 2
tends to make things worse.The BP error on the solution in the example
main.jl
(periodic ring of 24 sites) is incredibly small (the exact energy from contracting the result vs BP calculated energy agree to ~ 5 d.p.) but the energy oscillations are often on the order of, say, 3 d.p.